/*  File Name	: Cmd.h
 *  Author		: Pang Jiacai
 *	 E-mail		: 823960168@qq.com
 *  Created on	: 2012-7-11
 *  Description:
 */

#ifndef CMD_H_
#define CMD_H_

///////////////////client request/////////////////////////
#define CLIENT_CREATE_ROLE		10000000
#define CLIENT_LOG_IN  			10000001
#define CLIENT_LOG_OUT 			10000002
#define CLIENT_ENTER_ROOM 		10000003//进入房间
#define CLIENT_EXIT_ROOM 		10000004//退出房间
#define CLIENT_SWITCH_ROOM  	10000005
#define CLIENT_ENTER_TABLE		10000006//进入桌子
#define CLIENT_EXIT_TABLE  		10000007//退出桌子
#define CLIENT_START_GAME	 	10000008//开始游戏
#define CLIENT_BET			 	10000009//下注
#define CLIENT_RAISE			10000010//加赌注
#define CLIENT_ALL_IN	 		10000011//全下
#define CLIENT_FOLD		 		10000012//弃牌
#define CLIENT_CALL		 		10000013//跟牌
#define CLIENT_CHECK		 	10000014//过牌
#define CLIENT_MODIFY_CHIPS		10000015//带入筹码/修改带入筹码
#define CLIENT_UPLOAD_PIC		10000016//上传头像

#define CLIENT_RECHARGE			10000100//充值
#define CLIENT_QUERY_CHIPS		10000101//查询筹码
#define CLIENT_EXCHANGE_CHIPS	10000102//兑换筹码

#define CHATER_LOG_IN			11000001//聊天登录
#define CHATER_LOG_OUT			11000002//聊天退出
#define ENGINE_REGISTER			11000003//引擎注册

///dbserver
#define DBSERVER_PLAYER_LOGIN		12000001
#define DBSERVER_WEB_CREATE_ACCOUNT	12000002
#define DBSERVER_WEB_LOGIN			12000003
#define DBSERVER_WEB_LOGOUT			12000004

///directory server
#define DIRCSERVER_LOGIN		13000001//登录
#define DIRCSERVER_LOGOUT		13000002//退出
#define DIRCSERVER_UPDATE		13000003//
#define DIRCSERVER_GET_INFO		13000004//

///////////////////server respond/////////////////////////
#define RETURN_CREATE_ROLE		30000000
#define RETURN_LOG_IN  			30000001
#define RETURN_LOG_OUT 			30000002
#define RETURN_ENTER_ROOM 		30000003
#define RETURN_EXIT_ROOM 		30000004
#define RETURN_SWITCH_ROOM  	30000005
#define RETURN_ENTER_TABLE		30000006
#define RETURN_EXIT_TABLE  		30000007
#define RETURN_START_GAME	 	30000008//开始游戏
#define RETURN_BET			 	30000009//下注
#define RETURN_RAISE			30000010//加赌注
#define RETURN_ALL_IN	 		30000011//全下
#define RETURN_FOLD			 	30000012//弃牌
#define RETURN_CALL		 		30000013//跟牌
#define RETURN_CHECK		 	30000014//过牌
#define RETURN_MODIFY_CHIPS		30000015//带入筹码/修改带入筹码
#define RETURN_UPLOAD_PIC		30000016//

#define RETURN_RECHARGE				30000100//充值
#define RETURN_QUERY_CHIPS			30000101//查询筹码
#define RETURN_EXCHANGE_CHIPS		30000102//兑换筹码

//chat server
#define RETURN_CHATER_LOG_IN		31000001//聊天登录
#define RETURN_CHATER_LOG_OUT		31000002//聊天退出
#define RETURN_ENGINE_REGISTER		31000003//引擎注册

///dbserver
#define RETURN_DBSERVER_PLAYER_LOGIN		32000001
#define RETURN_DBSERVER_WEB_CREATE_ACCOUNT	32000002
#define RETURN_DBSERVER_WEB_LOGIN			32000003
#define RETURN_DBSERVER_WEB_LOGOUT			32000004

///directory server
#define RETURN_DIRCSERVER_LOGIN			33000001//登录
#define RETURN_DIRCSERVER_LOGOUT		33000002//退出
#define RETURN_DIRCSERVER_UPDATE		33000003//
#define RETURN_DIRCSERVER_GET_INFO		33000004//

////////////////////////////////////////////////////////////////
//server to client short for:stc
#define STC_BROADCAST_ROOM_INFO		50000000 //房间信息更新
#define STC_BROADCAST_TABLE_INFO	50000001 //桌子信息更新

#define STC_DEAL_PRIVATE			50000002//发底牌
#define STC_DEAL_PUBLIC				50000003//发3张公共牌
#define STC_DEAL_TURN				50000004//发转牌
#define STC_DEAL_RIVER				50000005//发河牌
#define STC_NOTIFY_OPERATE			50000006//通知可选操作
#define STC_DISPLAY_CARD			50000007//摊牌
#define STC_SEND_RESULT				50000008//
#define STC_PLAYER_LIST				50000009//玩家列表
#define STC_GAME_START				50000010//开始游戏
#define STC_POOL_INFO				50000011//池信息
#define STC_DEALER_INFO				50000012//庄家，大小盲位
#define STC_ENTER_TABLE				50000013//进入桌子
#define STC_EXIT_TABLE				50000014//退出桌子
#define STC_CUT_POKER				50000015//切牌

#define STC_GAMEINFO_TO_WEB			50000016//

#define STC_CHATER_CONTENT_ERROR	51000000//聊天内容错误
#define STC_CHATER_CONTENT			51000001//聊天内容

///////////////////////////////////////////////////////
//inner cmd
#define INNER_E2G_ERROR_INFO	80000000//消息错误
#define INNER_E2G_LOGOUT 		80000001//
#define INNER_E2G_ENTERROOM		80000002//
#define INNER_E2G_EXITROOM 		80000003//
#define INNER_E2G_SWITCHROOM 	80000004//

///////////////////////////////////////////////////////
//Error code
#define ERROR_SERVER_PROBLEM		-1//服务器出错
#define ERROR_CLIENT_INFO			-2//客户端上传的消息错误
#define ERROR_ACCOUNT_EXIST			-3//帐号已存在
#define ERROR_ACCOUNT_NOT_EXIST		-4//帐号不存在
#define ERROR_PASSWORD				-5//密码错误
#define ERROR_ROOM_FULL				-6//房间已满人
#define ERROR_LACK_CHIPS			-7//筹码不足
#define ERROR_LOGIN_AGAIN			-8//already login

#define ERROR_MEMBER_LIMIT			-9//人数限制

#define ERROR_CHAT_CONTENT_LEN		-100//聊天内容过长
#define ERROR_CHAT_CONTENT_FORBIT	-101//聊天内容禁止
#define ERROR_CHAT_TOO_FAST			-102//发言太快

#define ERROR_DIRC_REGISTER_GATEID	 -200//注册到目录服务器错误，网关id已存在

////////////////////////////////////////////////////////////
enum GameStep
{
	NONE_STEP=0,
	FISRT_DEAL=1,
	FISRT_BET = 2,
	SECOND_DEAL=3,
	SECOND_BET=4,
	DEAL_TURN = 5,
	THIRD_BET =6,
	DEAL_RIVER =7,
	FOURTH_BET = 8,
	GAME_END =9,
	CLEAN_DATA =10
};

enum NotifyType
{
	NOTIFY_NULL=0,
	NOTIFY_BET 	= 1,
	NOTIFY_RAISE = 2,
	NOTIFY_CALL	= 3,
	NOTIFY_CHECK = 4,
	NOTIFY_ALLIN = 5,
	NOTIFY_FOLD = 6
};

enum UpdateType
{
	UPDATE_GAME_STATUS 	= 1,//更新游戏状态
	UPDATE_CHIPS 		= 2,//更新筹码
	UPDATE_PLAYER_ENTER = 3,//player enter table
	UPDATE_PLAYER_EXIT 	= 4,//player exit table
	UPDATE_WIN_CHIPS = 5,//赢筹码
	UPDATE_CLEAN = 6,//游戏结束，清除信息
	UPDATE_CURR_OPERATOR = 7,//当前操作的玩家
	UPDATE_OPERATION =8,
	//============================
	END
};

enum RecordChips
{
	RECORD_NONE = 0,
	///////////////add////////////
	RECORD_CHIPS_RECHARGE=1,//充值
	RECORD_GAME_WIN=2,//游戏赢
	RECORD_GIVE_BACK =3,//归还给全局数据库


	///////////////sub/////////////
	RECORD_FEE=100,//每一局的手续费
	RECORD_GAME_LOST=101,//游戏输
	RECORD_BORROW=102,//从全局数据库借钱

};
#endif /* CMD_H_ */
